package com.eastfair.config.service;

import com.eastfair.boot.service.SuperCacheService;
import com.eastfair.config.dto.FormFieldCheckDTO;
import com.eastfair.config.dto.FormFieldDTO;
import com.eastfair.config.entity.FormField;
import com.eastfair.config.vo.FormFieldVO;
import com.eastfair.core.base.R;

import java.util.List;

/**
 * <p>
 * 业务接口
 *
 * </p>
 *
 * @author zjn
 * @date 2021-08-10
 */
public interface FormFieldService extends SuperCacheService<FormField> {

    /**
     * 根据类型、展会id查询表单
     *
     * @param formFieldDTO 表单过滤条件
     * @return 表单列表
     */
    R<List<FormFieldVO>> getBySubjectType(FormFieldDTO formFieldDTO);

    /**
     * 根据类型、展会id查询表单
     *
     * @param formFieldDTO 表单过滤条件
     * @return 表单列表
     */
    List<FormField> getBySubjectTypeInside(FormFieldDTO formFieldDTO);

    /**
     * 校验表单信息
     *
     * @param formFieldCheckDTO 校验参数
     * @return 校验结果
     */
    R<Boolean> checkFormFieldInfo(FormFieldCheckDTO formFieldCheckDTO);

    /**
     * 新增表单配置
     *
     * @param formFieldDTO 表单实体
     * @return 是否成功
     */
    R<Boolean> saveFormField(FormFieldDTO formFieldDTO);

    /**
     * 修改表单配置
     *
     * @param formFieldDTO 表单实体
     * @return 是否成功
     */
    R<Boolean> updateFormField(FormFieldDTO formFieldDTO);

    /**
     * 复制表单
     *
     * @param formFieldDTO 展会id，语言环境，使用主体
     * @return 是否成功
     */
    R<Boolean> copyFormFieldList(FormFieldDTO formFieldDTO);

}
